From: Keir Fraser Date: Wed, 14 Oct 2009 07:56:25 +0000 (+0100) Subject: xend: allow a device to be assigned to a guest and its stubdom X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13232 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=1ce3e83dc7889902e3d7650636de0a020c5f85ae;p=xen.git xend: allow a device to be assigned to a guest and its stubdom This patch allows a pci device to be passed through an HVM guest and its own stubdom at the same time. Signed-off-by: Stefano Stabellini --- diff --git a/tools/python/xen/xend/XendConfig.py b/tools/python/xen/xend/XendConfig.py index 347639920e..50b7afad41 100644 --- a/tools/python/xen/xend/XendConfig.py +++ b/tools/python/xen/xend/XendConfig.py @@ -2063,6 +2063,9 @@ class XendConfig(dict): def is_hvm(self): return self['HVM_boot_policy'] != '' + def is_stubdom(self): + return (self['PV_kernel'].find('ioemu') >= 0) + def target(self): return self['target'] diff --git a/tools/python/xen/xend/server/pciif.py b/tools/python/xen/xend/server/pciif.py index b56cf3b650..3d1f7b27c3 100644 --- a/tools/python/xen/xend/server/pciif.py +++ b/tools/python/xen/xend/server/pciif.py @@ -77,7 +77,8 @@ def get_all_assigned_pci_devices(): dom_list = xstransact.List('/local/domain') pci_str_list = [] for d in dom_list: - pci_str_list = pci_str_list + get_assigned_pci_devices(int(d)) + if xstransact.Read('/local/domain/' + d + '/target') is None : + pci_str_list = pci_str_list + get_assigned_pci_devices(int(d)) return pci_str_list class PciController(DevController): @@ -303,7 +304,7 @@ class PciController(DevController): if dev.driver == 'pciback': PCIQuirk(dev) - if not self.vm.info.is_hvm(): + if not self.vm.info.is_hvm() and not self.vm.info.is_stubdom() : # Setup IOMMU device assignment bdf = xc.assign_device(fe_domid, pci_dict_to_xc_str(pci_dev)) pci_str = pci_dict_to_bdf_str(pci_dev)